package com.wgy.designmode.structure.decorator;

import com.wgy.designmode.structure.decorator.decorator.BlueFillShapeDecorator;
import com.wgy.designmode.structure.decorator.decorator.RedShapeDecorator;
import com.wgy.designmode.structure.decorator.decorator.ShapeDecorator;
import com.wgy.designmode.structure.decorator.shape.Cricle;
import com.wgy.designmode.structure.decorator.shape.Shape;

/**
 * 装饰着模式
 * 图形绘制系统：   最开始只需要画一个圆，后来需要--->加边框--->填充颜色
 * 场景：当需要在不增加大量子类的情况下扩展类的功能；当需要动态地添加或撤销对象的功能。
 */
public class DecoratorPatternDemo {



    public static void main(String[] args) {

        Shape cricle = new Cricle();
        // 红色边框
        ShapeDecorator redShapeDecorator = new RedShapeDecorator(cricle);
        // 蓝色实体
        ShapeDecorator blueFillShapeDecorator = new BlueFillShapeDecorator(redShapeDecorator);

        // 最终画出 红色边框、蓝色实体的圆形
        blueFillShapeDecorator.draw();


    }


}
